package com.ganmiao.utils.g2d;

import java.awt.*;
import java.io.IOException;

public class Main {

    public static void main(String[] args) throws Exception {

        /**
         * 印章配置文件
         */
        SealConfiguration configuration = new SealConfiguration();

        /**
         * 主文字
         */
        SealFont mainFont = new SealFont();
        mainFont.setBold(true);
        mainFont.setFontFamily("宋体");
        mainFont.setMarginSize(5);
        /**************************************************/
        String mainText = "郑州云啸网络科技有限公司有限公司";
        mainFont.setFontText(mainText);
        mainFont.setFontSize(20);
        mainFont.setFontSpace(getManiFontSpace(mainText));
        /**************************************************/
        //mainFont.setFontText("ZHITUWANG CO.LTDECIDDO SH  NANNINGSHI");
        //mainFont.setFontSize(20);
        //mainFont.setFontSpace(15.0);
        /**************************************************/
//        mainFont.setFontText("欢乐无敌制图网淘宝店专用章");
//        mainFont.setFontSize(25);
//        mainFont.setFontSpace(12.0);

        /**
         * 副文字
         */
        SealFont viceFont = new SealFont();
        viceFont.setBold(true);
        viceFont.setFontFamily("宋体");
        viceFont.setMarginSize(1);
        /**************************************************/
        viceFont.setFontText("1234567890123");
        viceFont.setFontSize(12);
        viceFont.setFontSpace(10.0);
        /**************************************************/
//        viceFont.setFontText("正版认证");
//        viceFont.setFontSize(22);
//        viceFont.setFontSpace(12.0);

        /**
         * 中心文字
         */
        SealFont centerFont = new SealFont();
        centerFont.setBold(true);
        centerFont.setFontFamily("宋体");
        /**************************************************/
        centerFont.setFontText("★");
        centerFont.setFontSize(80);
        /**************************************************/

        /**
         * 抬头文字
         */
        SealFont titleFont = new SealFont();
        titleFont.setBold(true);
        titleFont.setFontFamily("宋体");
        titleFont.setFontSize(18);
        /**************************************************/
        titleFont.setFontText("合同专用章");
        titleFont.setMarginSize(42);
        titleFont.setFontSpace(10.0);
        /**************************************************/

        /**
         * 添加主文字
         */
        configuration.setMainFont(mainFont);
        /**
         * 添加副文字
         */
        configuration.setViceFont(viceFont);
        /**
         * 添加中心文字
         */
        configuration.setCenterFont(centerFont);
        /**
         * 添加抬头文字
         */
        configuration.setTitleFont(titleFont);

        /**
         * 图片大小
         */
        configuration.setImageSize(200);
        /**
         * 背景颜色
         */
        configuration.setBackgroudColor(Color.RED);
        /**
         * 边线粗细、半径
         */
        configuration.setBorderCircle(new SealCircle(5, 90, 90));
//        configuration.setBorderCircle(new SealCircle(3, 140, 100));
        /**
         * 内边线粗细、半径
         */
//        configuration.setBorderInnerCircle(new SealCircle(1, 135, 135));
//        configuration.setBorderInnerCircle(new SealCircle(1, 135, 95));
        /**
         * 内环线粗细、半径
         */
//        configuration.setInnerCircle(new SealCircle(2, 105, 105));
//        configuration.setInnerCircle(new SealCircle(2, 85, 45));

        //1.生成公章
        try {
            SealUtil.buildAndStoreSeal(configuration, "C:\\files\\contract\\公章.png");
        } catch (IOException e) {
            e.printStackTrace();
        }

        //2.生成私章
//        SealFont font = new SealFont();
//        font.setFontSize(120).setBold(true).setFontText("诸葛孔明");
//        SealUtil.buildAndStorePersonSeal(300, 16, font, "印", "C:\\Users\\localhost01\\Desktop\\私章.png");
    }

    private static Double getManiFontSpace(String text) {
        int length = text.length();
        double fontSpace = 16.0;
        if (length < 9) {
            fontSpace = 38.0;
        }
        if (length == 9) {
            fontSpace = 33.0;
        }
        if (length == 10) {
            fontSpace = 29.0;
        }
        if (length == 11) {
            fontSpace = 27.0;
        }
        if (length == 12) {
            fontSpace = 25.0;
        }
        if (length == 13) {
            fontSpace = 23.0;
        }
        if (length == 14) {
            fontSpace = 21.0;
        }
        if (length == 15) {
            fontSpace = 20.0;
        }
        if (length == 16) {
            fontSpace = 19.0;
        }
        if (length == 17) {
            fontSpace = 18.0;
        }

        System.out.println("fontSpace=" + fontSpace);
        return fontSpace;
    }

}
